package org.dfl.plugin.views.palette.model;

import java.util.Collection;

import org.dfl.plugin.views.palette.IDeltaListener;
import org.dfl.plugin.views.palette.model.PaletteEntry;
import org.eclipse.gef.Tool;
import org.eclipse.jface.resource.ImageDescriptor;

/**
 * interface for elements used in PaletteView that provide tool
 * @author Piotr Wlodarczyk
 *
 */
public interface PaletteEntry {
	public void setParent(PaletteEntry parent);
	public PaletteEntry getParent();
	
	public void addChild(PaletteEntry child);
	public void removeChild(PaletteEntry child);
	public Collection<PaletteEntry> getChildren();
	
	public ImageDescriptor getImage();
	public String getLabel();
	public Tool getTool(); // uzywane
	public Object getTransferTemplate();
	
	public void addChangeListener(IDeltaListener l);
	public void removeChangeListener(IDeltaListener l);
}
